package com.myapp.struts.action;

import com.myapp.hibernate.model.Boxeador;
import com.myapp.hibernate.model.Combate;
import com.myapp.hibernate.model.Entrada;
import com.myapp.hibernate.model.MuestraEntrada;
import com.myapp.hibernate.model.Usuario;
import com.myapp.hibernate.util.BoxeadorUtil;
import com.myapp.hibernate.util.CombateUtil;
import com.myapp.hibernate.util.EntradaUtil;
import com.myapp.hibernate.util.EstadioUtil;
import com.myapp.hibernate.util.UsuarioUtil;
import com.myapp.struts.form.GestionEntradasForm;
import java.util.ArrayList;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

public class SeccionGestionEntradasAction extends org.apache.struts.action.Action {

    private static final String SUCCESS = "success";

    @Override
    public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)
            throws Exception {

        GestionEntradasForm formulario = (GestionEntradasForm) form;
        CombateUtil combateUtil = new CombateUtil();
        UsuarioUtil usuarioUtil = new UsuarioUtil();
        BoxeadorUtil boxeadorUtil = new BoxeadorUtil();
        EstadioUtil estadioUtil = new EstadioUtil();
        EntradaUtil entradaUtil = new EntradaUtil();


        ArrayList<Usuario> usuarios = usuarioUtil.obtenerListaUsuarios();
        ArrayList<Entrada> entradas;
        Boxeador boxeadorAux;
        Combate combateAux;
        MuestraEntrada me;
        ArrayList<MuestraEntrada> listadoGestionEntradas = new ArrayList<MuestraEntrada>();


        for (Usuario u : usuarios) {
            entradas = entradaUtil.obtenerListaEntradasPorUsuario(u.getIdUsuario());
            for (Entrada e : entradas) {
                me = new MuestraEntrada();
                
                me.setUsuario(u.getEmail());
                me.setIdEntrada(e.getIdEntrada());
                combateAux = combateUtil.obtenerCombate(e.getIdCombate());
                me.setFecha(combateAux.getFecha());
                boxeadorAux = boxeadorUtil.obtenerBoxeador(combateAux.getIdBoxeador1());
                me.setNombreBoxeador1(boxeadorAux.getNombre());
                me.setApellidosBoxeador1(boxeadorAux.getApellidos());
                boxeadorAux = boxeadorUtil.obtenerBoxeador(combateAux.getIdBoxeador2());
                me.setNombreBoxeador2(boxeadorAux.getNombre());
                me.setApellidosBoxeador2(boxeadorAux.getApellidos());
                me.setNombreEstadio(estadioUtil.obtenerEstadio(combateAux.getIdEstadio()).getNombre());
                
                listadoGestionEntradas.add(me);
            }
        }
        formulario.setListadoEntradas(listadoGestionEntradas);
        return mapping.findForward(SUCCESS);
    }
}
